package com.castle.fortress.admin.dify.service;

import com.castle.fortress.admin.dify.model.*;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.servlet.mvc.method.annotation.SseEmitter;

public interface FileUploadService {
    /**
     * Upload file to third party server
     *
     * @param file file to upload
     * @param userId current user id
     * @return upload result
     */
    FileUploadResponse uploadFile(MultipartFile file, String userId,String fileUrl);

    /**
     * 分析合同文件并返回基本信息
     *
     * @param fileId 已上传的文件ID
     * @param userId 用户ID
     * @return 合同分析结果
     */
    ContractAnalysisResult analyzeContractInfo(String fileId, String userId);

    /**
     * 审查合同内容
     * 该方法会调用AI接口对合同进行全面审查，支持SSE流式返回
     *
     * @param request 合同审查请求参数，包含文件ID、用户ID、审查立场和审查力度等信息
     * @return SSE事件流发射器，用于流式返回审查结果
     */
    SseEmitter reviewContract(ContractReviewRequest request);


    //
    ReviewRulesResults reviewContractBlocking(ContractReviewRequest request,Long infoID);





}